package com.thirteen.app.dao;

import com.thirteen.app.dto.PaperWithAnswerResponse.QuestionTypeWithAnswerDto;
import com.thirteen.app.dto.PaperWithScoreResponse.QuestionTypeWithScoreDto;
import com.thirteen.app.dto.PaperRespose.QuestionTypeDto;
import com.thirteen.app.dto.PaperWithSolutionResponse.QuestionTypeWithSolutionDto;
import com.thirteen.app.entity.QuestionType;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface QuestionTypeDao {

    //    根据试卷Id查出其所有大题
    List<QuestionType> queryQuestionType(Integer paperId);

    //    根据试卷Id查出其所有大题，用于Dto
    List<QuestionTypeDto> queryQuestionTypeDtoById(Integer paperId);

    //    根据试卷Id查出其所有大题，用于Dto
    List<QuestionTypeWithAnswerDto> queryQuestionTypeWithAnswerDtoById(Integer paperId);

    //    根据试卷Id查出其所有大题，用于Dto
    List<QuestionTypeWithScoreDto> queryQuestionTypeWithScoreDtoById(Integer paperId);

    //    根据试卷Id查出其所有大题，用于Dto
    List<QuestionTypeWithSolutionDto> queryQuestionTypeWithSolutionDtoById(Integer paperId);

    //    根据试卷Id查出其所有大题Id
    List<Integer> queryQuestionTypeIdById(Integer paperId);

    //    根据试卷Id查出其所有客观题
    List<QuestionType> queryQuestionTypeObjective(Integer paperId);

    Integer insertQuestionTypeForCreate(@Param("questionType") QuestionType questionType);

    Integer queryQuestionTypeID(Integer questionId);

    List<QuestionTypeDto> queryAllByExamId(Integer examId);
}
